home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-13 / texmac.zip / SP.SPM < prev    next >
Text File  |  1991-11-26  |  9KB  |  232 lines

  1. ;----------------------------------------------
  2. ; Copyright (c) 1988 Borland International.  All Rights Reserved
  3. ;
  4. ;   RDT default user interface Version 1.
  5. ;
  6. ;   General permission to redistribute, but not for profit, all
  7. ;   or part of this User Interface program is granted, provided 
  8. ;   that this statement, including the above copyright notice,
  9. ;   is not removed.  You may add your own copyright notice to
  10. ;   secure copyright protection for new matter that you add to
  11. ;   the program, but Borland International will not support, nor
  12. ;   assume any legal responsibility for, material added or changes
  13. ;   made to this program.
  14. ;
  15. ; NAME: SP.SPM
  16. ;
  17. ; DESCRIPTION: NOTHER user interface, heavily modified from:
  18. ; Sprint sp.spm, core.spm, fwii.spm, and assorted downloads and my additions and modifications
  19. ; LAST UPDATE: September 9, 1988, November 26, 1990, 12/9/90, 2/6/91, 11/24/91
  20. ;
  21. ; NOTES: merged macros from core, sp. and fwii.spm files, plus my own
  22. ; and ones from Compuserve. I have extensively reworked many of those
  23. ; in core and sp.spm. Also have attempted to apply consistent nomenclature
  24. ; scheme to the naming of macros on the prevalent pattern of object/unit name
  25. ; followed by verb/action: WordFwd, WordBack, etc.
  26. ;
  27.  
  28. ;----------------------------------------------
  29. ; Q register usage:
  30. ;    *Q0 Scratch: filenames, and the result of imenus, KeyHelp, etc.
  31. ;    Q1 Destination filename, sort of transient
  32. ;    Q2 Search string
  33. ;    Q3 Replace string
  34. ;    *Q4 DoReplace scratch
  35. ;    Q5 DOS command
  36. ;    Q6 Formatter DOS command
  37. ;    Q7 
  38. ;    Q8 Scratch, file management
  39. ;    Q9 last File Spec
  40. ;    QA Used by glossary; holds current glossary Name
  41. ;    QB Used by glossary; holds glossary
  42. ;    *QC Scratch: Used by glossary
  43. ;    *QD Scratch
  44. ;    QE Used by spelling checker; holds bad word stack
  45. ;    QF Used to collect keystrokes for replay
  46. ;    QG MacroExecute
  47. ;    QH Used by column
  48. ;    QI Printer Menu settings
  49. ;    QJ Holds current Speller engine params
  50. ;    QK Holds a record containing infomerge info.
  51. ;    QL unused
  52. ;    QM unused
  53. ;    QN unused
  54. ;    QO unused
  55. ;    QP unused
  56. ;-------------------------------------------===
  57. ;    NUMBERED MARK USAGE:
  58. ;    0-9    used as place markers
  59. ;    A    
  60. ;    B    
  61. ;    C    
  62. ;    D    DoRepTest, DoReplace
  63. ;    E    DoRepTest, DoReplace
  64. ;    F    CharFindDelete, WordBackDelete, ColCopy, etc.
  65. ;----------------------------------------------
  66. ;    CONTENTS:
  67. ;    SECTION:    Routines that MUST exist for the compiler to work
  68. ;    SECTION:    Variables -- all the variables are declared here
  69. ;    SECTION:    #include NOTHER.UIM
  70. ;       SECTION:    #include files that stand alone, sort, mouse, drawline
  71. ;    SECTION:    #include MENUS.UIM, KEYS.UIM to complete the picture
  72. ;
  73. ;----------------------------------------------
  74. #clear
  75. ;----------------------------------------------
  76. ;    SECTION:    Routines that MUST exist for the compiler to work
  77. ; This function (Bell) must be BUG-FREE or the compiler won't work
  78. ; properly (it tries to ring the bell on compilation errors)
  79.  
  80. ; This function nominally takes an argument:  0-mistyped key, 1-error
  81. ; message, other-undefined.  If this is an IBM-PC, we produce interesting
  82. ; sounds by direct hardware manipulation, else we just print a ^G.
  83.  
  84. Bell :
  85.     if isibm sounddur sound
  86.     else rawout "^G"
  87.  
  88. ;----------------------------------------------
  89. ;    SECTION:    Variables -- all the variables are declared here
  90. ; -----------------------------------------------------------------
  91. ; Variables, get saved in ovl file if ovlmodf = 1
  92.  
  93. int RepCount    4        ; Holds number of iterations for RepeatCount
  94. int RepChar    0
  95.  
  96. int InRepChar    0
  97. int SaveRight    0
  98. int RepeatRate    50        ; msec/repeat for continuous scrolls
  99.  
  100. int Mnum           ; Keep track of the 10 markers in a ring, apologies to hch
  101. int NextMnum       ; next mark to jump To, fwd or back
  102.  
  103. int n                ; declare useful temporary variables
  104. int x
  105. int y
  106.  
  107. int EraseSwap    0    ; kill swap file on exit
  108. int PArg        50    ; This tells the editor how to load the formatter
  109. ; What the bits mean in PArg (and any use of the "call" macro):
  110. ;        1 - Do [press any key to continue] (-w) after it returns
  111. ;        2 - Pass -p=xxx -z=xxx (not -z, -s) to communicate printer&screen to formatter
  112. ;        4 - reserved
  113. ;        8 - Run the "restart" macro on reload (only works if bit 16 is on)
  114. ;        16- Overlay: clear most of editor from memory to make more room
  115. ;            for called program, when it returns fool DOS into running
  116. ;            a new copy of the editor where old one was.
  117. ;        32- Don't do "reset" from screen definition (i.e. don't clear it
  118. ;            for the default IBM definition)
  119. ;    PArg is 2+16+32.  If you subtract 16 it won't overlay and will therefore
  120. ; run faster.  Paginate adds 8 to run "restart" macro, which reads the .log
  121. ; file produced by formatter and inserts the page breaks.
  122.  
  123. int AppendNext    0        ; set by any deletion commands
  124. int DelAtt    0        ; saved attribute of deleted region, unused by NOTHER.UIM
  125. int ColMode    0        ; column mode 1= on
  126. int ALineLength 65
  127. int WordWrap    0        ; Flag to control word wrap styles separate from ALineLength
  128. int AutoIndent    0        ; 1 = auto indent to line above cursor after [enter]
  129. int Quoted    0        ; Holds last char inserted by Quote macro
  130. int FloppyDisk  0        ; 0=Hard disk, 1=360Ko, 2=720ko, 3=1.2Mo
  131. int WasEngine    0        ; 1=Hyphen or Thesaurus, 2=Speller
  132.  
  133. ; decimal tab routine
  134. int AlignChar    '.'        ; decimal tab alignment char (',' for Europe)
  135.  
  136. ; hyphenation routines
  137. int HypLen     8    ; minimum word length to hyphenate
  138. int HypAsk     4    ; minimum extra space on a line before considering hyphenating
  139.  
  140. ; keyboard macro routines
  141. int MacroRepCnt    1    ; repeat count
  142.  
  143. ; print options, unnecessary since they're now local to PrintOptions
  144. int GuessCutOff    500    ; if the file has more than this many lines,
  145.                     ; we assume that it needs 2 passes and don't
  146.                     ; search for @ or ^V
  147. int PrintDest    0    ; 0 = printer, 1= file, 2 = screen, 3 = network queue
  148. int Paper    0    ; paper type
  149. ; the following globals aren't necessary with PrintOptions in QI
  150. ;int AutoFill    0    ; 0 = no fill, 1 = fill yes
  151. ;int FirstPage    1    ; starting page
  152. ;int GuessResult 1    ; result of Printguess
  153. ;int LastPage    0    ; ending page 0 = last page of doc
  154. ;int LogErrors    0    ; 0 = no log, 1 = log errors to file.log
  155. ;int NumCopies    1    ; number of copies to print
  156. ;int PagePause    0    ; 0 = no pause, else, pause
  157. ;int Plain    0    ; 0 = normal, 1 = plain
  158. ;int PrintPass    0    ; 0 = auto, else, pass to print on + 1
  159.  
  160. int SaveDest    0    ; used by Spmerge : to preserve PrintDest
  161.  
  162. ; Info Merge options
  163. int LastRec    0    ; last record to merge 0= use all records
  164. int FirstRec    1    ; record to start merge with
  165. int DataFormat    0    ; 0 = std format, 1 = basic file format (remditto)
  166.  
  167. ; search options
  168. int SearchDirection    1    ; 1 = last search was forward, else back
  169. int SearchOpt        1    ; Standard options to search macro
  170. int GlobalSearch    0    ; 1 = search from beginning of file 0 = from point
  171. int GlobalReplace    0    ; passed into DoReplace
  172. int StrFound        0    ; used by DoReplace
  173.  
  174. ; direction / Unit flags
  175. ;int Dir 1            ; coordinate with flag4, 0 is reverse, 1 forward
  176. ;int TUnit 'w'    ; remember most recent unit of text movement, resolve into one
  177.  
  178. ; spelling corrector
  179. int AutoCorrect        0    ; indicates auto-correct
  180. int BadWordPending    0    ; If 1, then a bad word has not been corrected
  181.  
  182. ; GotoLine, now LineJump
  183. int LastLine    0    ; Holds last line user went to w/GotoLine
  184.  
  185. ; keyboard recording
  186. int OldStatLine 1    ; to preserve status line setting
  187.  
  188. ; Insert/Overwrite mode
  189. int InsertMode 0    ; same as overwrite, but kept in overlay to preserve state
  190.  
  191. ; Determines type of call used when running DOS commands.  If 0, then Sprint
  192. ; will remain in memory, taking away about 220k.  If 16, then the editor
  193. ; will be overlayed, leaving all but 3k of memory available to it.  The
  194. ; latter is great for running other applications from within Sprint, but since
  195. ; Sprint must reload when being returned to, it is somewhat slower.
  196. int BIGDOS 16
  197.  
  198. ; Return code from overlayed program
  199. int ReturnCode
  200.  
  201. ;----------------------------------------------
  202. ;    SECTION:    #include UIM files
  203. ;----------------------------------------------
  204. UISave : $ ovlwrite "nother.ui" ovlwrite "sp"
  205. ;SaveUi: UISave         ; for compatibility with Core
  206.  
  207. #include "nother"    ; main macro set
  208.  
  209. #include "column"       ; few changes
  210. #include "gloss"    ; glossary management, some improvements
  211. #include "spell"    ; spelling, thesaurus,  few changes
  212. #include "sort"         ; has to follow nother,  few changes
  213.  
  214. ;----------------------------------------------
  215. ;       SECTION:    #include files that stand alone
  216. ;                       get these files from source.arc
  217. ;----------------------------------------------
  218. ;#include "colors"      ; permanent overlay, it writes the overlay in current dir.
  219. ;#include "mouse"       ; I don't use these, so omit to save space & time
  220. ;#include "drawline"
  221.  
  222. ;----------------------------------------------
  223. ;    SECTION:    #include MENUS, KEYS to complete the picture
  224. ;----------------------------------------------
  225. #include "spprint"    ; Sprint/Scribe print menu, handle infomerge
  226. #include "tex.spm"      ; TeX formatting & menu
  227. #include "pickmac"      ; misc. macros in a pick list
  228. #include "menus"        ; most menus
  229. #include "keys"         ; key assignments
  230.  
  231. : UISave
  232.